package cn.jobstart.service;

import cn.jobstart.modelExt.JobExt;
import cn.jobstart.modelExt.RightsExt;
import cn.jobstart.pubInter.exception.SkException;
import cn.jobstart.searchExt.JobSearchExt;
import cn.jobstart.pubInter.IBaseService;

import java.util.List;


/**
*    @author sunke
*    @Date 2023-09-15 14:55:16
*    @description JobService      职位名称
*/
public interface IJobService extends IBaseService<JobExt, JobSearchExt,String> {


    /**
     * 更新是否有子级
     * @param jobId
     * @param nextFlag  -1 自己查询一下有没有下级并更新
     */
    void updateNextFlagByJobId(String jobId,int nextFlag) ;



    /**
     * 更新所有下级等级
     *
     * @param jobId
     * @param currentLevel
     * @param upSelf             是否更新自己
     */
    void updateAllSubLevelByJobId(String jobId, int currentLevel, boolean upSelf);

    void updateAllSubLevelByJob(JobExt job, int currentLevel, boolean upSelf);

    /**
     * 树型
     * @param level  需要几级数据
     * @return
     */
    List<JobExt> tree(int level);
    /**
     * 得到所有
     *
     * @return
     */
    List<JobExt> getTopList();

    /**
     * 得到某一个级的下一级
     *
     * @param jobId
     * @return
     * @throws SkException
     */
    List<JobExt> getSubListByJobId(String jobId) throws SkException;
    /**
     * 下级
     *
     * @param job
     * @throws SkException
     */
    void treeByJob(JobExt job, int level) throws SkException;
    JobExt treeByJobId(String  jobId, int level) throws SkException;
}